package controlador;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import modelo.Cliente;
import modelo.Deposito;
import modelo.Drogueria;
import vista.VentanaAgregarCliente;
import vista.VentanaAgregarDeposito;
import vista.VentanaPrincipal;

public class ControladorAgregarDeposito  implements ActionListener{

	private VentanaPrincipal ventanaPrincipal;
	private VentanaAgregarDeposito ventanaAgregarDeposito;
	private Drogueria drogueria;
	private int posi;




	public ControladorAgregarDeposito(Drogueria dro) {
		// TODO Auto-generated constructor stub

		ventanaAgregarDeposito  = new VentanaAgregarDeposito();
	   ventanaPrincipal = new VentanaPrincipal();
		ventanaAgregarDeposito.setLocationRelativeTo(null);
		ventanaAgregarDeposito.setVisible(true);
		ventanaAgregarDeposito.agregarListener(this);
		drogueria = dro;

	}

	public void actionPerformed(ActionEvent ae){
		if (ae.getActionCommand().equalsIgnoreCase("Registrar")){ 
			agregarDeposito();
		}
		if (ae.getActionCommand().equalsIgnoreCase("Modificar")){
			modificarDeposito();				   
		}
		if (ae.getActionCommand().equalsIgnoreCase("Buscar")){
			buscarDeposito();	
		}
		if (ae.getActionCommand().equalsIgnoreCase("Eliminar")){
			eliminarDeposito();
		}
		if (ae.getActionCommand().equalsIgnoreCase("Cancelar")){
			ventanaAgregarDeposito.limpiarCampos();
			ventanaAgregarDeposito.habilitar();
		}
		if (ae.getActionCommand().equalsIgnoreCase("Salir")){
			ventanaAgregarDeposito.dispose();								
		}
	}


	public void agregarDeposito(){

		if (ventanaAgregarDeposito.validar()== true){

			String codigo    = ventanaAgregarDeposito.getCodigo();
			String direccion  = ventanaAgregarDeposito.getDireccion();
			String telefono = ventanaAgregarDeposito.getTelefono();
			int estantes    = ventanaAgregarDeposito.getEstantes(); 
			int paletas = ventanaAgregarDeposito.getPaletas();
			Deposito deposito = new Deposito(codigo,direccion,telefono);

			deposito.crearEstantes(estantes);
			deposito.crearPaletas(paletas);

			drogueria.agregarDeposito(deposito);
			ventanaAgregarDeposito.mostrarMensaje("El Registro ha sido exitoso!");


			ventanaAgregarDeposito.limpiarCampos();
			ventanaAgregarDeposito.habilitar();

		}
	}



	/***********************************************************************/	
	public void buscarDeposito(){
		String cod = ventanaAgregarDeposito.getCodigo();
		if(!cod.equalsIgnoreCase("")){

			int pos = this.drogueria.buscarDeposito(cod);

			if(pos!=-1){

				ventanaAgregarDeposito.setDireccion(drogueria.getDeposito(pos).getDireccion());
				ventanaAgregarDeposito.setTelefono(drogueria.getDeposito(pos).getTelefono());

				/*ventanaAgregarDeposito.setEstantes(drogueria.getDeposito(pos).getCantEstantes());
			ventanaAgregarDeposito.setPaletas(drogueria.getDeposito(pos).getCantPaletas());*/

				this.posi = pos;
				ventanaAgregarDeposito.inhabilitar();
			}
			else
				ventanaAgregarDeposito.mostrarMensaje("Deposito no registrado");
		}
		else{
			ventanaAgregarDeposito.mostrarMensaje("Por favor ingrese Codigo");
		}
	}			

	/***********************************************************************/

	public void eliminarDeposito(){
		drogueria.eliminarDeposito(posi);
		ventanaAgregarDeposito.limpiarCampos();
		ventanaAgregarDeposito.mostrarMensaje("El Deposito ha sido eliminado!");
		ventanaAgregarDeposito.habilitar();

	}
	/***********************************************************************/

	public void modificarDeposito(){

		try {
			String direccion   = ventanaAgregarDeposito.getDireccion();
			String telefono = ventanaAgregarDeposito.getTelefono();
			int estantes    = ventanaAgregarDeposito.getEstantes(); 
			int paletas = ventanaAgregarDeposito.getPaletas();			

			drogueria.getDeposito(posi).setDireccion(direccion);
			drogueria.getDeposito(posi).setTelefono(telefono);

			/*drogueria.getDeposito(posi).setCantEstantes(estantes);
	     	drogueria.getDeposito(posi).setCantPaletas(paletas);*/

			ventanaAgregarDeposito.mostrarMensaje("Modificacion exitosa");

			ventanaAgregarDeposito.limpiarCampos();
			ventanaAgregarDeposito.habilitar();
		}
		catch(Exception e) {
			// Mensaje de Dialogo en caso de que ocurra cualquier otra excepcion
			ventanaAgregarDeposito.mostrarMensaje("Deben ser validos");
		}

	}

}
